﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QuanCafe
{
    public partial class ucNhanVienTruc : UserControl
    {
        #region Set properties
        // khởi tạo các biến cho uc này
        // khởi tạo các properties
        [Category("ThongTinNhanVien"), Description("Họ tên nhân viên!")]
        public string Hoten
        {
            get { return txtHoTen.Text; }
            set { txtHoTen.Text = value; }
        }

        [Category("ThongTinNhanVien"), Description("Ca trực của nhân viên!")]
        public string Catruc
        {
            get { return txtCaTruc.Text; }
            set { txtCaTruc.Text = value; }
        }

        [Category("ThongTinNhanVien"), Description("Ảnh đại diện của nhân viên!")]
        public string Anhdaidien
        {
            get { return ptbAnhDaiDien.ImageLocation; }
            set { ptbAnhDaiDien.ImageLocation = value; }
        }

        #endregion

        public ucNhanVienTruc()
        {
            InitializeComponent();
        }

        #region Tạo các sự kiện cho uc này
        // btnDangXuat
        public delegate void NhanVienTruc_DangXuatHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi muốn đăng xuất khỏi chương trình!")]
        public event NhanVienTruc_DangXuatHandle nhanVienTruc_dangXuat;

        // btnDoiMatKhau
        public delegate void NhanVienTruc_DoiMatKhauHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi muốn đổi mật khẩu!")]
        public event NhanVienTruc_DoiMatKhauHandle nhanVienTruc_doiMatKhau;

        // sự kiện đang trong quá trình load ảnh
        public delegate void NhanVienTruc_DangLoadAnhHandle();
        [Category("ThongTinSuKien"), Description("Đang trong trạng thái chờ load một hình ảnh!")]
        public event NhanVienTruc_DangLoadAnhHandle nhanVienTruc_dangLoadAnh;

        // sự kiện sau khi load ảnh hoàn tất
        public delegate void NhanVienTruc_LoadAnhXongHandle();
        [Category("ThongTinSuKien"), Description("Sau khi đã load xong một ảnh!")]
        public event NhanVienTruc_LoadAnhXongHandle nhanVienTruc_loadAnhXong;

        // sự kiện click vào ảnh
        public delegate void NhanVienTruc_ClickAnhHandle();
        [Category("ThongTinSuKien"), Description("Click vào hình!")]
        public event NhanVienTruc_ClickAnhHandle nhanVienTruc_clickAnh;


        #endregion


        private void ucNhanVienTruc_Load(object sender, EventArgs e)
        {
            
        }


        #region Xử lý các sự kiện

        // sự kiện đăng xuất
        private void btnDangXuat_Click(object sender, EventArgs e)
        {
            if (nhanVienTruc_dangXuat != null)
            {
                nhanVienTruc_dangXuat();
            }
        }

        // sự kiện đổi mật khẩu
        private void btnDoiMatKhau_Click(object sender, EventArgs e)
        {
            if (nhanVienTruc_doiMatKhau != null)
            {
                nhanVienTruc_doiMatKhau();
            }
        }

        // hàm xử lý sự kiện vẽ text lên cho tooltip
        private void ttpInfo_Draw(object sender, DrawToolTipEventArgs e)
        {
            e.DrawBackground();
            e.DrawText();

        }

        // click lên picturebox AnhDaiDien
        private void ptbAnhDaiDien_Click(object sender, EventArgs e)
        {
            if (nhanVienTruc_clickAnh != null)
            {
                nhanVienTruc_clickAnh();
            }
        }

        // viết hàm chờ đợi lúc load hình
        private void ptbAnhDaiDien_LoadProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            probAnhDaiDien.Visible = true;
            if (nhanVienTruc_dangLoadAnh != null)
            {
                nhanVienTruc_dangLoadAnh();
            }

        }
        
        // sau khi đã load hình xong
        private void ptbAnhDaiDien_LoadCompleted(object sender, AsyncCompletedEventArgs e)
        {
            probAnhDaiDien.Visible = false;
            if (nhanVienTruc_loadAnhXong != null)
            {
                nhanVienTruc_loadAnhXong();
            }

        }

        #endregion


        

       
       




    }
}
